The present invention relates generally to an output driver for integrated circuits, and more specifically to an apparatus and method for a bus output driver for integrated circuits.
Integrated circuits connect to and communicate with each other. Typically, integrated circuits communicate with each other using a bus with address, data and control signals.
In FIG. 1, a bus 20 interconnects a memory controller 22 and memory modules (RAMS) 24, 26, 28. Physically, the bus comprises the traces on a printed circuit board, wires or cables and connectors. Each of these integrated circuits has a bus output driver circuit 30 that interfaces with the bus 20 to drive data signals onto the bus to send data to other ones of the integrated circuits. In particular, the bus output drivers 30 in the memory controller 22 and RAMS 24, 26, 28 are used to transmit data over the bus 20. The bus 20 operates or transmits signals at a speed that is a function of many factors such as the system clock speed, the bus length, the amount of current that the output drivers can drive, the supply voltages, the spacing and width of the wires or traces making up the bus, the physical layout of the bus itself and the resistance of a pull up resistor attached to each bus.
The address, data and control lines making up the bus will be referred to as channels. In some systems, all channels connect to a pull-up resistor Z0. Typically the resistance of the pull up resistor is 28 ohms.
Output drivers for use on a bus, such as is shown in FIG. 1, are preferably current mode drivers, which are designed to drive the bus 20 with a determinable amount of current substantially independent of the voltage on the driver output. The output impedance of the driver 30 is a good metric of how much the driver""s current will change with voltage changes on the driver""s output, a high output impedance being desirable for the current mode driver. In addition, a high output impedance is desirable to minimize transmission line reflections on the bus when a particular driver 30 receives voltage changes from another driver on the bus 20. In such a case, a driver with a high output impedance will not substantially alter the impedance of the bus 20, thus causing only a small portion of a wave to be reflected at the location where the driver 30 is attached to the bus.
FIG. 2A shows a prior art bus output driver circuit 30 which has an output multiplexor 32 that connects to an output current driver 34 at q-node 40. The q-node 40 refers to the physical connection between the output multiplexor 32 and the output current driver 34. A q-node signal is output to the q-node 40. The q-node signal is a voltage level that causes the output current driver 34 to drive a corresponding voltage level on the bus 20 (also herein called a bus channel).
The output multiplexor 32 receives a clock signal at a clock input 42, and receives odd and even data signals at the odd data and even data inputs 44 and 46, respectively. The odd and even data signals are synchronized to the clock signal. The output multiplexor 32 transmits the data from the odd data and even data inputs onto the q-node 40 on the rising and falling edges of the clock signal, respectively.
The slew rate and output current of the bus output driver 30 are controllable. A set of slew rate control bits 50 is used to select the slew rate of the transitions of the q-node signal. A slew rate estimator 48 may be used to generate the slew rate control bits 50. Alternately, the slew rate control bits 50 may be generated by a process detector, a register that is programmed with a fixed value during manufacture or during testing of the device after manufacture, or by any other type of slew rate detection circuitry. The source of the slew rate control bits 50 may be external to the bus output driver 30. The output current driver 34 outputs a signal, called Vout, that corresponds to the q-node signal, onto the bus channel 20. A current control block 52 outputs a set of current control bits 54 that select the amount of current used to drive data onto the bus channel 20. The current control block 52 may be external to the bus output driver 30, and may be implemented as a current level detector or as a register programmed with a fixed value during or after manufacture of the device.
FIG. 2B is a schematic of the prior art output multiplexor and output current driver of FIG. 2A. The clock, odd data and even data signals are input to multiple current control blocks 62, 64 and each current control block 62, 64 outputs a q-node signal on a q-node 66, 68, 70, 72. In FIG. 2B, the q-nodes 66, 68, 70, 72 are also designated as q less than 6 greater than -q less than 0 greater than , respectively. When the q-node signal has a sufficiently high voltage level, a corresponding transistor T0-T6 in the output current driver becomes active and pulls Vout low. Each q-node signal drives a binary weighted pulldown device T0-T6 in the output current driver. In other words, multiple q-nodes 66, 68, 70, 72 are used to drive a single channel 20 of the bus. The transistors T0-T6 are n-type metal-oxide-semiconductor (MOS) transistors and are binary weighted with respect to each other. In particular, each transistor T0-T6 will drive or sink a predetermined amount of current with respect to Iout. Transistor T0 sinks 20 or 1xc3x97Iout (e.g., about 0.26 milliamps minimum), transistor T4 sinks 24 or 16xc3x97Iout, transistor T5 sinks 32xc3x97Iout, and transistor T6 sinks 64xc3x97Iout.
Since the current control blocks 62, 64 are similar, one current control block 62 will be described. The current control block 62 has an input block 82 and a pre-driver 84. The input block 82 is responsive to a current control signal output on a current control bit line 84. In FIG. 2B, the current control signals are shown as Current Control  less than 0 greater than  through Current Control  less than 6 greater than . Each q-node 66, 68, 70, 72 is associated with a separate current control signal. The current control signal enables the NAND gates 86, 88 to respond to the odd and even data signals. Each NAND gate 86, 88 outputs its signal to a pair of passgates 92, 94, respectively. The passgate pairs 92, 24 are responsive to the clock signal such that one passgate pair 92, 94 is on at a time, outputting either the odd data or even data signal. The output of the passgates 92, 94 is connected to the pre-driver 84.
If the current control signal on the current control bit line 84 is at a low voltage, the NAND gates 86, 88 output a high voltage level regardless of the voltage level of the odd or even data signal, thereby causing a xe2x80x9clowxe2x80x9d voltage level at the associated q-node and disabling the corresponding transistor in the output current driver.
If the current control signal on the current control bit line 84 is at a high voltage level, the NAND gates 86, 88 are enabled, and the predriver 84, q-node and output current driver are responsive to the odd and even data signals.
In the prior art output driver 30, the output impedance of the output driver 30 is not well controlled, and is determined by the value of a supply voltage, Vcc (the high voltage for the q-node), the output voltage when it is being driven low, and the characteristics of the transistors in the output current driver 34.
FIG. 2C is a schematic of the prior art pre-driver 84 of FIG. 2B. The predriver has many predriver sub-blocks 96, 98, 100. Each predriver sub-block 96, 98, 100 has an inverter 11, 12, 13 and a passgate pair 102, 104, 106 respectively. One predriver sub-block 96 is always enabled with the gate of each transistor of the passgate pair 102 connected to the power supply Vcc and to ground, respectively. The other passgate pairs 104, 106 of the predriver sub-blocks 98, 100 connect to the slew rate control bits, Slew Rate Control  less than 0 greater than  and Slew Rate Control  less than 1 greater than . The slew rate of the predriver 84 is adjusted by enabling and disabling the passgates 104, 106 with slew rate control signals on the slew rate control bits.
In particular, when the slew rate control signal on Slew Rate Control bit  less than 1 greater than  is high, the passgate pair 104 of the predriver sub-block 98 is enabled. The passgate pair 104 increases the rate of transition between a high voltage level and a low voltage level of the q-node signal on the q-node 66. When the slew rate control bit  less than 1 greater than  is low, the corresponding passgate pair 104 of the predriver sub-block 98 is effectively disabled and the slew rate is unaffected. Enabling the additional passgate pairs of additional predriver sub-blocks 100 further increases the slew rate of the q-node signal.
However, when using multiple q-nodes to drive a single channel, it is difficult to match the delays and slew rates of each q-node under all process, voltage and temperature conditions.
Therefore, there is a need for an output driver whose output impedance is maintained within a desired range. There is also a need for an impedance controlled output driver which has an adjustable slew rate and operating current.
An output driver has an output multiplexor and an output current driver. The output multiplexor receives a data signal and outputs a q-node signal to the output current driver. In the output current driver, an output drive transistor receives the q-node signal. The output drive transistor has a predetermined threshold voltage and an output impedance which is maintained within a predetermined range when the output drive transistor is outputting a low voltage level.
In this way, the q-node signal is used to control the slew rate and output impedance of the signal output by the output driver.
In another embodiment, the output current driver is responsive to a current control signal which is used to select a desired amount of drive current onto the bus. The output current driver has transistor stacks that are responsive to the current control signal to enable the q-node signal to cause a predetermined amount of current to flow through the transistor stack.
From another viewpoint, the present invention is directed to a method and apparatus that satisfies the need to have an output driver with an adjustable operating current and adjustable slew rate.
In a preferred embodiment, the output driver includes an output current driver operating as a current mode driver. The output current driver is driven from a predriver which receives its power from a carefully regulated power supply. The regulated supply causes the high voltage level of the control signal to be substantially equal to the regulated supply voltage in order to maintain the output impedance of the output current driver above a predetermined threshold when the output driver is outputting a low voltage level. Additionally, the output current driver includes circuitry to permit the operating current of the output current driver to be adjustable and the predriver includes circuitry to permit the slew rate of the control signal to be adjustable. To help meet the goals of an adjustable slew rate and adjustable operating current, a single control node (q-node) is employed between the predriver and the output current driver. Not only does the single control node simplify implementation of the adjustable operating current and adjustable slew rate features, it further simplifies the design of the impedance controlled driver. Thus, the output driver has a controlled and determinable output impedance. Additionally, an impedance controlled driver has an adjustable slew rate and adjustable operating current. The result is a driver having controlled switching characteristics, a more stable output current on a bus, and a driver which minimizes reflections from other drivers on the bus. The regulated power supply for the predriver includes a v-gate supply for generating the regulated supply voltage. A charge compensator is coupled to the predriver to help maintain the v-gate supply voltage when the predriver is changing state. The v-gate supply includes a v-gate generator for generating the regulated supply voltage and a charge compensation bit generator for controlling the charge compensator. Furthermore, to maintain the duty cycle of the output signal from the output driver when slew rate adjustments are made, a duty cycle compensator is employed to pre-compensate the signal received by the predriver. Also, to aid the predriver in driving the control signal to ground, a kickdown circuit is employed and coupled in parallel with the predriver.